Methods and apparatus for determining a transmit antenna gain and a spatial mode of a device

ABSTRACT

Methods and apparatus for determining a transmit antenna gain and a spatial mode of a wireless device ( 100 ) are disclosed. The apparatus ( 100 ) includes a main receive antenna ( 112 ) associated with a first receive signal strength, a diversity receive antenna ( 114 ) associated with a second receive signal strength, and a transmit antenna ( 116 ). Each of the antennas ( 112, 114 , and  116 ) is operatively coupled to a controller ( 102 ). The controller ( 102 ) determines (i) a difference between the first receive signal strength and the second receive signal strength, (ii) a correction factor based on the difference, and (iii) the transmit antenna gain based on the correction factor. In addition, the difference between the first receive signal strength and the second receive signal strength may be used, along with other sensor data (e.g., accelerometer), to estimate the spatial mode (e.g., orientation and hand grip) of the device ( 100 ). This spatial mode estimation may be then be used, among other things, to more accurately determine transmit antenna gain.

The present disclosure relates in general to wireless devices, and, inparticular, to methods and apparatus for determining a transmit antennagain and a spatial mode of a wireless device.

BACKGROUND OF THE INVENTION

Wireless devices typically adjust the amount of power they deliver tothe transmit antenna of the wireless device. For example, when acellular phone is close to a base station, less power is required thanwhen the cellular phone is farther away from the base station. In thisexample, the base station may dynamically instruct the cellular phone togo to a certain transmit power level based on the signal strength beingreceived by the base station.

However, circumstances local to the cellular phone may change since thelast base station instruction. For example, the user may change his/hergrip on the cellular phone and thereby create path loss due to shadingthat affects the signal. In order to compensate for this type ofsituation, the cellular phone may also make adjustments to its transmitpower level. However, without information from the base station, thecellular phone cannot measure its transmit path loss. Instead, thecellular phone may measure its receive signal strength to estimate itstransmit path loss and adjust its transmit power accordingly.

If the receive antenna in the handset is physically located near thetransmit antenna, this estimation technique works well. However, if thereceive antenna in the handset is not physically located near thetransmit antenna, this estimation may be inaccurate. An improved methodof estimating the spatial mode (e.g., orientation and hand grip) ofwireless devices is needed. This improved estimation of spatial mode maybe used, among other things, to more accurately determine transmitantenna gain.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example wireless device with a mainreceive antenna physically located near a transmit antenna.

FIG. 2 is a block diagram of an example wireless device with a diversityreceive antenna physically located between a main receive antenna and atransmit antenna.

FIG. 3 is a block diagram of another example wireless device.

FIG. 4 is a flowchart of an example process for determining a transmitantenna gain.

FIG. 5 is a flowchart of another example process for determining atransmit antenna gain.

FIG. 6 is a flowchart of an example process for determining a spatialmode of a wireless device.

FIG. 7 and FIG. 8 illustrate a flowchart of another example process fordetermining a spatial mode of a wireless device.

FIG. 9 and FIG. 10 illustrate a flowchart of another example process fordetermining a spatial mode of a wireless device.

FIG. 11 and FIG. 12 illustrate a flowchart of another example processfor determining a spatial mode of a wireless device.

FIG. 13 and FIG. 14 illustrate a flowchart of another example processfor determining a spatial mode of a wireless device.

FIG. 15 is a flowchart of an example process for selecting a radioaccess technology based on a spatial mode of a wireless device.

FIG. 16 is a flowchart of an example process for optimizing transmitpower in a wireless device.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Briefly, methods and apparatus for determining a transmit antenna gainand a spatial mode of a wireless device are disclosed. In an embodiment,the apparatus includes a main receive antenna associated with a firstreceive signal strength, a diversity receive antenna associated with asecond receive signal strength, and a transmit antenna. Each of theantennas is operatively coupled to a controller. The controllerdetermines (i) a difference between the first receive signal strengthand the second receive signal strength, (ii) a correction factor basedon the difference, and (iii) the transmit antenna gain based on thecorrection factor. In addition, the difference between the first receivesignal strength and the second receive signal strength may be used,along with other sensor data (e.g., accelerometer), to estimate thespatial mode (e.g., orientation and hand grip) of the device. Thisspatial mode estimation may then be used, among other things, to moreaccurately determine transmit antenna gain.

Determining the difference between the at least two receive signalstrengths may include measuring an antenna signal strength for each ofthe various receive antenna paths. The diversity receive antenna may bephysically located between the main receive antenna and a transmitantenna. Determining the difference between the at least two differentreceive signal strengths may be performed in real time. Determining thecorrection factor may include determining if the difference between theat least two receive signal strengths exceeds a predetermined threshold.This predetermined threshold may be indicative of an adjusted gaindifference between a main receive antenna and a diversity receiveantenna. Determining the correction factor may include determining anindication of path loss.

In another embodiment, the apparatus includes a proximity sensorstructured to produce proximity data, an accelerometer structured toproduce accelerometer data, a main receive antenna associated with afirst receive signal strength, a diversity receive antenna associatedwith a second receive signal strength, and a transmit antenna. Each ofthe devices is operatively coupled to a controller. The controllerdetermines (i) a difference between the first receive signal strengthand the second receive signal strength, and (ii) the spatial mode of thewireless device based on the proximity data, the accelerometer data, andthe difference between the first receive signal strength and the secondreceive signal strength.

In one example, the diversity receive antenna is physically locatedbetween the main receive antenna and the transmit antenna. In oneexample, the controller is structured to determine a transmit antennagain based on the spatial mode of the wireless device.

Turning now to the figures, a block diagram of an example wirelessdevice 100 with a main receive antenna 112 physically located near atransmit antenna 116 is illustrated in FIG. 1. In this example, thewireless device 100 includes a controller 102 operatively coupled to aproximity sensor 104, a direction/orientation sensor 106 such as agyroscope, accelerometer 108, and a touch sensor 109 (e.g., a capacitivetouch sensor). The proximity sensor 104 may be a light sensor. Theproximity sensor 104 detects when the user or another object is near thewireless device 100. The direction/orientation sensor 106 measures therate of rotation of the electronic device 100 around an axis. Theaccelerometer 108 measures the orientation of the wireless device 100relative to the surface of the earth. It will be appreciated that anysuitable sensors may be used. For example, a magnetometer and or globalpositioning system (GPS) device may be used as an input to thecontroller 102.

The example wireless device 100 also includes a receive signal strengthindicator (RSSI) 110. The receive signal strength indicator 110 isoperatively coupled to a main receive antenna 112 and a diversityreceive antenna 114. The receive signal strength indicator 110 suppliesthe controller 102 with data indicative of the signal strength of eachof the antennas 112, 114, 116. In this example, the main receive antenna112 is located near the transmit antenna 116, and the diversity receiveantenna 114 is located away from the main receive antenna 112 and thetransmit antenna 116. As a result, the signal strength of the mainreceive antenna 112 may be a relatively good indicator of the gainneeded for the transmit antenna 116.

As described in detail below, the controller 102 determines the amountof transmit antenna gain 118. For example, the controller 102 uses thedata from the proximity sensor 104, the direction/orientation sensor106, the accelerometer 108, and/or any other suitable sensors todetermine the amount of transmit antenna gain 118.

A block diagram of an example wireless device with a diversity receiveantenna physically located between a main receive antenna and a transmitantenna is illustrated in FIG. 2. In this example, the wireless device100 includes a controller 102 operatively coupled to a proximity sensor104, a direction/orientation sensor 106, and accelerometer 108. Theproximity sensor 104 may be a light sensor. The proximity sensor 104detects when the user or another object is near the wireless device 100.The direction/orientation sensor 106 measures the rate of rotation ofthe electronic device 100 around an axis. The accelerometer 108 measuresthe orientation of the wireless device 100 relative to the surface ofthe earth. It will be appreciated that any suitable sensors may be used.For example, a magnetometer and or global positioning system (GPS)device may be used as an input to the controller 102.

The example wireless device 100 also includes a receive signal strengthindicator (RSSI) 110. The receive signal strength indicator 110 isoperatively coupled to a main receive antenna 112 and a diversityreceive antenna 114. The receive signal strength indicator 110 suppliesthe controller 102 with data indicative of the signal strength of eachof the antennas 112, 114, 116. In this example, the main receive antenna112 is not located near the transmit antenna 116, and the diversityreceive antenna 114 is between the main receive antenna 112 and thetransmit antenna 116. As a result, the signal strength of the mainreceive antenna 112 may not be a good indicator of the gain needed forthe transmit antenna 116 without a correction factor.

The controller 102 determines the amount of transmit antenna gain 118.For example, the controller 102 may determine a difference between thereceived signal strength indicator values for the main receive antenna112 and the diversity receive antenna 114. This difference may then beused to determine a correction factor, which is a function of thedifference between the two receive signal strengths (e.g., thedifference between the two receive signal strengths minus somepredetermined constant). The correction factor may then be used by thecontroller 102 to determine the appropriate amount of transmit antennagain 118. In addition, the controller 102 may use the data from theproximity sensor 104, the direction/orientation sensor 106, theaccelerometer 108, and/or any other suitable sensors to determine theamount of transmit antenna gain 118.

The wireless device 100 illustrated in FIG. 1 and FIG. 2 may includecertain common aspects of many electronic devices such asmicroprocessors, memories, peripherals, etc. A block diagram of certainelements of an example wireless device 100 is illustrated in FIG. 3. Theexample wireless device 100 includes a main unit 306 which may include,if desired, one or more physical processors 304 electrically coupled byan address/data bus 306 to one or more memories 308, other computercircuitry 310, and one or more interface circuits 312. The processor 304may be any suitable processor or plurality of processors. For example,the wireless device 100 may include a central processing unit (CPU)and/or a graphics processing unit (GPU).

The memory 308 may include various types of non-transitory memoryincluding volatile memory and/or non-volatile memory such as, but notlimited to, distributed memory, read-only memory (ROM), random accessmemory (RAM) etc. The memory 308 typically stores a software programthat interacts with the other devices in the system as described herein.This program may be executed by the processor 304 in any suitablemanner. The memory 308 may also store digital data indicative ofdocuments, files, programs, web pages, etc. retrieved from a serverand/or loaded via an input device 314.

The interface circuit 312 may be implemented using any suitableinterface standard, such as an Ethernet interface and/or a UniversalSerial Bus (USB) interface. One or more input devices 314 and/or sensors315 may be connected to the interface circuit 312 for entering data andcommands into the main unit 106. For example, the input device 314 maybe a keyboard, mouse, touch screen, track pad, isopoint, camera, voicerecognition system and/or any other suitable input device 314. Examplesensors 315 include a proximity sensor, a light sensor, adirection/orientation sensor (e.g., a gyroscope), an accelerometer, aglobal positioning system (GPS), and/or any other suitable sensor 315.

One or more displays, printers, speakers, monitors, televisions, highdefinition televisions, and/or other suitable output devices 316 mayalso be connected to the main unit 106 via the interface circuit 312.The display 316 may be a liquid crystal displays (LCDs), electronic ink(e-ink), and/or any other suitable type of display. The display 316generates visual displays of data generated during operation of thedevice 300. For example, the display 316 may be used to display webpages and/or other content received from a server 106 and other device.The visual displays may include prompts for human input, run timestatistics, calculated values, data, etc.

One or more storage devices 318 may also be connected to the main unit106 via the interface circuit 312. For example, a hard drive, CD drive,DVD drive, and/or other storage devices may be connected to the mainunit 106. The storage devices 318 may store any type of data used by thedevice 300.

The wireless device 100 may also exchange data with other networkdevices 322 via a connection to a network 302. The network connectionmay be any type of network connection, such as an Ethernet connection,digital subscriber line (DSL), telephone line, coaxial cable, wirelessbase station 330, etc. Users of the system 100 may be required toregister with a server 106. In such an instance, each user may choose auser identifier (e.g., e-mail address) and a password which may berequired for the activation of services. The user identifier andpassword may be passed across the network 302 using encryption builtinto the user's browser. Alternatively, the user identifier and/orpassword may be assigned by the server 106.

Wireless device 100 includes one or more antennas 324 connected to oneor more radio frequency (RF) transceivers 326. The transceiver 326 mayinclude one or more receivers and one or more transmitters operating onthe same and/or different frequencies. For example, the device 300 mayinclude a Bluetooth transceiver, a Wi-Fi transceiver, and/or diversitycellular transceivers. The transceiver 326 allows the device 300 toexchange signals, such as voice, video and data, with other wirelessdevices 328, such as a phone, camera, monitor, television, and/or highdefinition television. For example, the device 300 may send and receivewireless telephone signals, text messages, audio signals and/or videosignals directly and/or via a base station 330. A receive signalstrength indicator (RSSI) associated with each receiver generates anindication of the relative strength or weakness of each signal beingreceived by the device 300.

A flowchart of an example process 400 for determining a transmit antennagain is illustrated in FIG. 4. The process 400 may be carried out by oneor more suitably programmed processors, such as a CPU executing software(e.g., block 304 of FIG. 3). The process 400 may also be carried out byhardware or a combination of hardware and hardware executing software.Suitable hardware may include one or more application specificintegrated circuits (ASICs), state machines, field programmable gatearrays (FPGAs), digital signal processors (DSPs), and/or other suitablehardware. Although the process 400 is described with reference to theflowchart illustrated in FIG. 4, it will be appreciated that many othermethods of performing the acts associated with process 400 may be used.For example, the order of many of the operations may be changed, andsome of the operations described may be optional.

In this example, the process 400 begins when the controller 102determines a difference between at least two receive signal strengths(block 402). For example, the controller 102 may subtract the signalstrength of the main receive antenna 112 from the signal strength of thediversity receive antenna 114. The controller 102 then determines acorrection factor based on the difference (block 404). For example, thecontroller 102 may set the correction factor equal to the differencebetween the two receive signal strengths minus some predeterminedthreshold. The controller 102 then determines the transmit antenna gainbased on the correction factor (block 406). For example, the transmitpath loss may be estimated based on the correction factor and used todetermine the transmit antenna gain. In addition, for duplex antennas,the transmit antenna may be reassigned. For example, the receive antennawith the highest RSSI may become the primary transmit antenna if thetransmit and receive frequency bands are the same (e.g., time-divisionduplexed systems).

A flowchart of another example process 500 for determining a transmitantenna gain is illustrated in FIG. 5. The process 500 may be carriedout by one or more suitably programmed processors, such as a CPUexecuting software (e.g., block 304 of FIG. 3). The process 500 may alsobe carried out by hardware or a combination of hardware and hardwareexecuting software. Suitable hardware may include one or moreapplication specific integrated circuits (ASICs), state machines, fieldprogrammable gate arrays (FPGAs), digital signal processors (DSPs),and/or other suitable hardware. Although the process 500 is describedwith reference to the flowchart illustrated in FIG. 5, it will beappreciated that many other methods of performing the acts associatedwith process 500 may be used. For example, the order of many of theoperations may be changed, and some of the operations described may beoptional.

In this example, the process 500 begins when the controller 102 computesthe reference signal receive power (RSRP) delta (block 502). The RSRPdelta is calculated by subtracting the RSRP of one antenna of a wirelessdevice from the RSRP of another antenna of the wireless device. Forexample, the RSRP of the main receive antenna 122 may be +8 dBm, and theRSRP of the diversity receive antenna 114 may be +2 dBm, for a delta of+6 dBm.

If the RSRP delta is above a first threshold (e.g., greater than a knownRF gain imbalance) (block 504), the controller 102 may estimate atransmit path loss adjustment to be the lower of the power headroom andthe RSRP delta (block 506). For example, if the first threshold is 6 dBand the RSRP delta is 7 dB, then the transmit path loss adjustment maybe set to 1 dB. Similarly, if the first threshold is 6 dB and the RSRPdelta is 8 dB, then the transmit path loss adjustment may be set to 2dB, and if the first threshold is 6 dB and the RSRP delta is 9 dB, thenthe transmit path loss adjustment may be set to 3 dB.

If the RSRP delta is not above the first threshold (block 504), thecontroller 102 may determine if the RSRP delta is below a secondthreshold (e.g., 0 dB) (block 508). If the RSRP delta is below thesecond threshold (block 508), the controller 102 may determine if thedevice is in panorama mode (block 510). If the device is in panoramamode (block 510), the controller 102 may estimate the transmit path lossadjustment to be the lower of the power headroom and the RSRP delta(block 506). If the device is not in panorama mode (block 510), thecontroller 102 may estimate the transmit path loss adjustment to be theabsolute value of the RSRP delta (block 512). For example, if the secondthreshold is 0 dB and RSRP delta is −1 dB, then the transmit path lossadjustment may be set to 1 dB. Similarly, if the second threshold is 0dB and the RSRP delta is −2 dB, then the transmit path loss adjustmentmay be set to 2 dB. If RSRP delta is not above the first threshold(block 504), and the RSRP delta is not below the second threshold (block508), the controller 102 may set the transmit path loss adjustment to 0dB (block 514).

Once the transmit path loss adjustment is determined, the controller 102calculates the new path loss by adding the path loss adjustment to thecurrent path loss (block 516). The controller 102 may then determine thetransmit power using the new path loss in a well-known manner (block516). For example, the transmit power may be determined according to the3GPP 36213 standard.

A flowchart of an example process 600 for determining a spatial mode ofa wireless device is illustrated in FIG. 6. The process 600 may becarried out by one or more suitably programmed processors, such as a CPUexecuting software (e.g., block 304 of FIG. 3). The process 600 may alsobe carried out by hardware or a combination of hardware and hardwareexecuting software. Suitable hardware may include one or moreapplication specific integrated circuits (ASICs), state machines, fieldprogrammable gate arrays (FPGAs), digital signal processors (DSPs),and/or other suitable hardware. Although the process 600 is describedwith reference to the flowchart illustrated in FIG. 6, it will beappreciated that many other methods of performing the acts associatedwith process 600 may be used. For example, the order of many of theoperations may be changed, and some of the operations described may beoptional.

In this example, the process 600 begins when the controller 102 receivesdata from one or more sensors (block 602). For example, the controller102 receives data from the proximity/light sensor 104, thedirection/orientation sensor 106, the accelerometer 108, and/or anyother suitable sensors. The controller 102 then determines a differencebetween at least two receive signal strengths (block 604). For example,the controller 102 may subtract the signal strength of the main receiveantenna 112 from the signal strength of the diversity receive antenna114. The controller 102 then determines the spatial mode of the wirelessdevice 100 (e.g., landscape grip, call grip, etc.) based on the sensordata and the difference between the at least two receive signalstrengths (block 606). For example, the controller 102 may determinethat the wireless device 100 is in a right hand grip (as described indetail below). The controller 102 then determines the transmit antennagain based on the spatial mode of the device (block 608). For example,if the difference between the main receive antenna 112 and the diversityreceive antenna 114 is less than 6 dB, and/or the wireless device 100 isin a right hand grip, the wireless device 100 may increase the transmitantenna gain. In this manner, when the transmit antenna 116 is beingshadowed by the user's hand, the transmit power may be boosted.

A flowchart of another example process 700 for determining a spatialmode of a wireless device is illustrated in FIG. 7 and FIG. 8. Thisspatial mode determination may be used in conjunction with the spatialmode determination described above with reference to FIG. 6 to determinea spatial mode of a device. The process 700 may be carried out by one ormore suitably programmed processors, such as a CPU executing software(e.g., block 304 of FIG. 3). The process 700 may also be carried out byhardware or a combination of hardware and hardware executing software.Suitable hardware may include one or more application specificintegrated circuits (ASICs), state machines, field programmable gatearrays (FPGAs), digital signal processors (DSPs), and/or other suitablehardware. Although the process 700 is described with reference to theflowchart illustrated in FIG. 7 and FIG. 8, it will be appreciated thatmany other methods of performing the acts associated with process 700may be used. For example, the order of many of the operations may bechanged, and some of the operations described may be optional.

In this example, the process 700 begins the wireless device 100 executesa well-known detection algorithm that uses the accelerometer inputs (thegravitational velocity vector) in x, y and z directions (block 702).During this process the controller 102 checks suitably processed (e.g.,low-pass IIR filtered) input vectors for x, y and z and derived values703 (e.g., functions of input vectors for x, y and z) against athreshold, which is determined from empirical data of different spatialmodes. For each input vector and derived value (six total in thisexample), if an input vector or derived value 703 is above thethreshold, a corresponding spatial/cognitive signature bit is set to“1.” If an input vector or derived value 703 is not above the threshold,the corresponding spatial signature bit is set to “0.” The controller102 then looks up the spatial signature created (8 bits in this example)in an empirical database (block 704) to estimate the position and/orgrip of the wireless device 100 (block 706). The empirical database is aset of heuristic rules used to determine the sensor data signatures invarious grip positions. For example, various grip position signaturesmay be collected by holding the device in various positions by a varietyof subjects (e.g., man, woman, child) for a specified set of time.

A flowchart of another example process 800 for determining a spatialmode of a wireless device is illustrated in FIG. 9 and FIG. 10. Thisspatial mode determination may be used in conjunction with the spatialmode determination described above with reference to FIG. 6 to determinea spatial mode of a device. The process 800 may be carried out by one ormore suitably programmed processors, such as a CPU executing software(e.g., block 304 of FIG. 3). The process 800 may also be carried out byhardware or a combination of hardware and hardware executing software.Suitable hardware may include one or more application specificintegrated circuits (ASICs), state machines, field programmable gatearrays (FPGAs), digital signal processors (DSPs), and/or other suitablehardware. Although the process 800 is described with reference to theflowchart illustrated in FIG. 9 and FIG. 10, it will be appreciated thatmany other methods of performing the acts associated with process 800may be used. For example, the order of many of the operations may bechanged, and some of the operations described may be optional.

In this example, the process 800 begins the wireless device 100 executesa detection algorithm that uses the accelerometer inputs in x, y and zdirections (block 802). During this process the controller 102 checkssuitably processed (e.g., low-pass IIR filtered) input vectors for x, yand z and derived values 803 (e.g., functions of input vectors for x, yand z) against a threshold, which is determined from empirical data. Inaddition, the controller 102 tracks the rate of change of theaccelerometer inputs with a relatively finer precision and uses amulti-level threshold for finer spatial cognizance. If an input vectoror derived value 803 is less than a first threshold, correspondingspatial/cognitive signature bits are set to “01.” If an input vector orderived value 703 is above the first threshold, but lower than a secondthreshold, the corresponding spatial signature bits are set to “10.” Ifan input vector or derived value 703 is above a third threshold, thecorresponding spatial signature bits are set to “11.” Otherwise, thecorresponding spatial signature bits are set to “00.” The controller 102then looks up the spatial signature created (16 bits in this example) inan empirical database to estimate the position of the wireless device100 (block 806).

A flowchart of another example process 900 for determining a spatialmode of a wireless device is illustrated in FIG. 11 and FIG. 12. Theprocess 900 may be carried out by one or more suitably programmedprocessors, such as a CPU executing software (e.g., block 304 of FIG.3). The process 900 may also be carried out by hardware or a combinationof hardware and hardware executing software. Suitable hardware mayinclude one or more application specific integrated circuits (ASICs),state machines, field programmable gate arrays (FPGAs), digital signalprocessors (DSPs), and/or other suitable hardware. Although the process900 is described with reference to the flowchart illustrated in FIG. 11and FIG. 12, it will be appreciated that many other methods ofperforming the acts associated with process 900 may be used. Forexample, the order of many of the operations may be changed, and some ofthe operations described may be optional.

In this example, the process 900 begins when a plurality of inputs 902are processed to form a signature (e.g., 24 bits of flags). For example,the inputs 902 may come from a gyroscope, a barometer, an accelerometer,a proximity sensor, a light sensor, and or a radio access technologysignal level quality measurement. One or more of these inputs may be fedinto a spatial cognition detection engine 904. Other inputs may includea battery level, a thermal level, CPU utilization, a radio accesstechnology, a screen state, a call state, network I/O statistics, anoperational profile, a Bluetooth/wired headset state, a dock and chargerstate, and/or a GPS state. One or more of these inputs may be fed into adevice operational cognition engine 906. In this example, the spatialcognition engine 904 and the device operational cognition engine 906feed in to an overall decision engine 908.

The spatial cognition engine 904 may be improved by an auxiliary process(blocks 910-916). In this example, the improvement process includessoliciting inputs for learning algorithms from the end user (block 910).For example, the user may be periodically asked if he/she is currentlyholding the phone in a certain position (e.g., right hand grip). Theuser inputs are then validated by the algorithm (block 912) and sent toa learning algorithm (block 914) that is fed into a spatial cognitiondatabase with spatial signatures (block 916) and used to improve thespatial cognition engine 904.

Similarly, in this example, the device operational cognition engine 906may be improved by another auxiliary process (blocks 918-924). In thisexample, the improvement process includes soliciting inputs for learningalgorithms from lab tests (block 918). For example, a lab technician maybe asked if he/she is currently holding the phone in a certain position(e.g., right hand grip). The user inputs are then validated by thealgorithm (block 920) and sent to a learning algorithm (block 922) thatis fed into a device cognition database with operational statssignatures (block 924) and used to improve the device operationalcognition engine 906.

As described in detail below with reference to FIG. 13 and FIG. 14, thedecision engine 908 uses the spatial cognition engine 904 and the deviceoperational cognition engine 906, to produce one or more outputs 926.For example, the outputs 926 may include a radio access technologyselection 928, an antenna selection 930, a transmit power optimization932, device security 934, and/or any other suitable outputs 936.

A flowchart of another example process 1000 for determining a spatialmode of a wireless device is illustrated in FIG. 13 and FIG. 14. Theprocess 1000 may be carried out by one or more suitably programmedprocessors, such as a CPU executing software (e.g., block 304 of FIG.3). The process 1000 may also be carried out by hardware or acombination of hardware and hardware executing software. Suitablehardware may include one or more application specific integratedcircuits (ASICs), state machines, field programmable gate arrays(FPGAs), digital signal processors (DSPs), and/or other suitablehardware. Although the process 1000 is described with reference to theflowchart illustrated in FIG. 13 and FIG. 14, it will be appreciatedthat many other methods of performing the acts associated with process1000 may be used. For example, the order of many of the operations maybe changed, and some of the operations described may be optional.

In this example the overall process 1000 begins, in a spatial signaturedetermination sub-process 1001, when the controller 102 receives aplurality of cognition inputs from the accelerometer 108 regarding eachaxis of the wireless device 100 (block 1002). The accelerometer inputs1002 are then passed through a low pass filter 1007 and used to computecertain angles associated with the wireless device 100 (block 1008). Thelow pass filter 1007 reduces the noise of the measurement samples.

The angles calculated (block 1008) are then compared to predeterminedthresholds to set a plurality of spatial signature bits (blocks1014-1020). These thresholds may be determined from mining empiricaldata. A first set of threshold comparisons is used to determine thedevice position relative to the planes (block 1014). For example, if theX angle is above the first threshold, a first bit of the signature isset. If the Y angle is above the first threshold, a second bit of thesignature is set, and if the Z angle is above the first threshold, thena third signature bit is set. A second set of threshold comparisons isused to determine if the device is prominent in any of the major axes(block 1016). For example, if any of the three angles are above thesecond threshold, then a fourth bit of the signature is set. A third setof threshold comparisons is used to fine tune the position determinationto two major axes planes (block 1018). In this example, if the X angleand the Y angle are above the third threshold, then a fifth bit of thesignature is set. Similarly, if the Y angle and Z angle are above thethird threshold, then a sixth bit of the signature is set, and if the Xangle and the Z angle are above the third threshold, then a seventh bitof the signature is set. A fourth set of threshold comparisons is usedto isolate the dominant angle within the two major axes (block 1020).For example, if the X angle is above the fourth threshold, an eighth bitof the signature is set. If the Y angle is above the fourth threshold, aninth bit of the signature is set, and if the Z angle is above thefourth threshold, then a tenth signature bit is set.

Finally, after all of the calculations are completed, the position ofthe wireless device 100 is estimated (block 1022). This estimation ismade by taking the spatial signature (e.g. 12 bits) and comparing itagainst an empirical database to find the closest pattern of relevance.

The accelerometer inputs from block 1002 are also used to calculate thevariance on each axis and compute the maximum angle variance (block1004). Similarly, the angles associated with the wireless device 100from block 1008 are used to calculate the variance in each plane andcompute a maximum plane variance (block 1010). These angle variancecalculations are then used to by a degree of motion sub-process 1005 toperform a plurality of additional calculations (block 1006). Forexample, thresholds of 0.01, 0.1, 0.3 and >1 may be set based onempirical tests. In this example, if the variance exceeds 0.01, a degreemotion parameter is logically-ORed with 0x01 for (0.01), 0x02 for (0.1),etc. These thresholds are dependent on the size of the wireless device100 and are calibrated for the device 100. The degree motion parametermay be a one byte hex value. For example, a value of 0x33 may indicate ahigh degree of device motion, and a value of 0x11 may indicate thewireless device 100 is being held and not on a stable surface. The planevariance calculations are then used to perform a plurality of additionalcalculations (block 1012). For example, thresholds of 20-degrees,45-degrees, 60-degrees and >60-degrees may be set based on empiricaltests. If the variance in angle measurements exceeds 20-degrees, thedegree motion parameter is logically-ORed with 0x10 for (20), 0x20 for(45), etc. These thresholds are also dependent on the size of thewireless device 100 and are calibrated for the device 100. Thesevariances may be used to determine static conditions for a spatial mode.The variance is typically lower when the device is relatively static andhigher when the device is relatively mobile. Accordingly, a normalizedvariance may be used to determine a confidence factor. For example, theconfidence factor may be used to determine if the device is gripped(higher variance) or is in a dock (lower variance) The metrics derivedfrom the sensor inputs of the wireless device 100 are then comparedagainst an empirical database to track the static nature of the device100 including low-frequency movement, such as vehicles that are notaccelerating and strong grips, high-frequency movement, such as normalgrips, and random movements such as movements within a shipping box or afreefall (block 1024).

As described above with reference to FIGS. 7-10, other inputs,independent of the block described above, may also be used to determinethe spatial/cognition signature. For example, a proximity sensor 104and/or ambient light sensor may be used (block 1026). In this example,if the proximity sensor 104 detects a proximity (e.g., wireless device100 near user's ear), then a certain bit of the cognition signature isset (block 1028). Similarly, if the light sensor detects light, anotherbit of the cognition signature may be set. In another example, thereceived signal strength indicator (RSSI) values may be used (block1030). The RSSI values may be passed through a low pass filter 1031 toreduce noise and then used to calculate the long-term (e.g., 600 s)and/or the short-term (e.g., 10 s) variance based on the position of theantennas in the wireless device 100 (block 1032). The spatial signature(determined in block 1001), the degree of motion (determined in block1005), the proximity and light readings (determined in block 1028), andthe signal variance (determined in block 1032) are then combined toproduce a 24 bit cognition signature, as shown in block 1034.

A flowchart of an example process 1100 for selecting a radio accesstechnology based on a spatial mode of a wireless device is illustratedin FIG. 15. The process 1100 may be carried out by one or more suitablyprogrammed processors, such as a CPU executing software (e.g., block 304of FIG. 3). The process 1100 may also be carried out by hardware or acombination of hardware and hardware executing software. Suitablehardware may include one or more application specific integratedcircuits (ASICs), state machines, field programmable gate arrays(FPGAs), digital signal processors (DSPs), and/or other suitablehardware. Although the process 1100 is described with reference to theflowchart illustrated in FIG. 15, it will be appreciated that many othermethods of performing the acts associated with process 1100 may be used.For example, the order of many of the operations may be changed, andsome of the operations described may be optional.

In this example, the process 1100 begins when the controller 102determines if the spatial mode of the device 100 is a concealed spatialmode (e.g., in a purse or pocket) (block 1102). For example, the spatialmode of the device 100 may be determined as described above withreference to FIGS. 6-14. If the device 100 is not in a concealed spatialmode, the controller 102 determines if the device 100 is in a static ordocked mode (e.g., the device 100 is effectively stationary) (block1104). For example, this determination may be made as described abovewith reference to FIG. 13 and FIG. 14.

If the device 100 is in a concealed spatial mode, or the device 100 isin a static or docked mode, the controller 102 determines the thermallevel, battery level, and data utilization level of the device 100(block 1106). The controller 102 then selects a radio access technologyand antenna based on the thermal level, battery level, and/or datautilization level of the device 100 (block 1108). For example, if thedevice 100 is concealed and data utilization is low (e.g., in a pocketand not in use), a low power radio access technology and associatedantenna(s) may be selected in order to save power. However, if thedevice 100 is concealed and data utilization is high (e.g., in a pocketand streaming music), a higher power radio access technology andassociated antenna(s) may be needed to access the data being used (e.g.,music data). In some embodiments, the spatial information may also beused to adjust the automatic gain control of one or more receiveantennas in order to balance any gain delta between receive antennas.

If the device 100 is not in a concealed spatial mode, and the device 100is not in a static or docked mode, the controller 102 determines thegrip, content type, and data utilization level of the device 100 (block1110). The controller 102 then selects a radio access technology andantenna based on the grip, content type, and/or data utilization levelof the device 100 (block 1112). For example, the controller 102 maydetermine if the spatial mode of the device 100 is most consistent witha right-hand grip, a left-hand grip, or a call grip. Based on thespatial mode of the device 100, the controller 102 selects the antenna112, 114, 116 that is in a physical location that is the least shadowedby the grip (see FIG. 1 and FIG. 2 for example antenna placements). Forexample, if the device 100 is in a right hand grip, a left side antennaand associated radio access technology may be selected in order toincrease signal strength. However, if the device 100 is executingcontent that is normally used by children (e.g., G rated movie orapplication), a lower power radio access technology and associatedantenna(s) may be needed to reduce radio frequency exposure.

A flowchart of an example process 1200 for optimizing transmit power ina wireless device is illustrated in FIG. 16. The process 1200 may becarried out by one or more suitably programmed processors, such as a CPUexecuting software (e.g., block 304 of FIG. 3). The process 1200 mayalso be carried out by hardware or a combination of hardware andhardware executing software. Suitable hardware may include one or moreapplication specific integrated circuits (ASICs), state machines, fieldprogrammable gate arrays (FPGAs), digital signal processors (DSPs),and/or other suitable hardware. Although the process 1200 is describedwith reference to the flowchart illustrated in FIG. 16, it will beappreciated that many other methods of performing the acts associatedwith process 1200 may be used. For example, the order of many of theoperations may be changed, and some of the operations described may beoptional.

In this example, the controller 102 determines if the wireless device100 is in a certain condition such as in the pocket or purse of the user(block 1202). For example, a proximity sensor or light sensor 104 mayindicate that the device is concealed. The objective is to reduce thetransmit costs and optimize transmit power when data utilization isbelow a certain threshold and the device is in a certain condition or acertain type of content is being played. Transmit cost may be reduce byeither by throttling transmit packets or moving to a lower cost radioaccess technology. Throttling transmit packets reduces the transmitcost, because the power spectral density across time (e.g., transmitattempts per second) is reduced and this aids in optimizing the transmitpath.

If the device 100 is in one of the predetermined conditions (e.g., in apocket or purse), the controller 102 determines if the device 100 iscurrently using data (block 1204). If the device 100 is currently usingdata, the controller 102 makes certain adjustments to transmit power(block 1205). For example, the controller 102 may reduce the frequencyof the uplink bandwidth solicitation requests. Similarly, the controller102 may reduce the number of uplink transmissions and/or reduce thenumber of power emitted per second. Similarly, the controller 102 maymodify the power headroom report, so that the network does not increasethe transmit power. In another example, if the device 100 is in-pocketor being used by a child (e.g., based on a running application orcontent being classified as having a certain application age ratingand/or a content age rating such as a children's game or a G ratedmovie), then the controller 102 may reduce transmit power and/or switchto a lower power radio access technology.

If the controller 102 determines that the device 100 is currently notusing data (block 1204), the controller 102 determines if the device 100is in an idle mode (block 1206). If the controller 102 determines thatthe device 100 is not in idle mode, the controller 102 again determinesif the device 100 is currently using data (block 1204). In this manner,changes to critical call sustaining parameters are not made when thedevice 100 is active. If the controller 102 determines that the device100 is in idle mode, the controller 102 reduces the frequency of scans,increases a sleep duration, and/or evaluates the radio access excesstechnology costs for candidate radio access technologies (block 1208).If the device 100 is in an idle mode for greater than a threshold periodof time, such as 10 minutes (block 1210), the controller 102 may placethe device 100 in a normal mode (block 1212). Otherwise, the controller102 may attempt to switch the device 100 to a more cost-efficient radioaccess technology (block 1214). In some embodiments, the spatialinformation may also be used to adjust the automatic gain control of oneor more receive antennas in order to balance any gain delta betweenreceive antennas.

In summary, persons of ordinary skill in the art will readily appreciatethat methods and apparatus for determining a transmit antenna gain and aspatial mode of a wireless device have been provided. Among otherfeatures, wireless devices using the disclosed methods and apparatusbenefit from more balance uplink power that might otherwise suffer frompath loss due to shadowing.

The foregoing description has been presented for the purposes ofillustration and description. It is not intended to be exhaustive or tolimit the invention to the exemplary embodiments disclosed. Manymodifications and variations are possible in light of the aboveteachings. It is intended that the scope of the invention be limited notby this detailed description of examples, but rather by the claimsappended hereto.

What is claimed is:
 1. A method of determining a transmit antenna gainof a device, the method comprising: determining, by a controller of thedevice, a difference between at least a main receive antenna signalstrength associated with a main receive antenna and a diversity receiveantenna strength associated with a diversity receive antenna;determining, by the controller, a correction factor based on thedifference; determining, by the controller, a spatial mode of the deviceat least based on the difference; and determining, by the controller,the transmit antenna gain based on the correction factor and the spatialmode.
 2. The method of claim 1, wherein the diversity receive antenna isphysically located between the main receive antenna and a transmitantenna.
 3. The method of claim 1, wherein determining the differencebetween the at least main receive antenna signal strength and thediversity receive antenna strength is performed in real time.
 4. Themethod of claim 1, wherein determining the correction factor includesdetermining if the difference between the at least main receive antennasignal strength and the diversity receive antenna strength exceeds apredetermined threshold.
 5. The method of claim 4, wherein thepredetermined threshold is indicative of an adjusted gain differencebetween the main receive antenna and the diversity receive antenna. 6.The method of claim 1, wherein determining the correction factorincludes determining an indication of path loss.
 7. The method of claim1, wherein determining the correction factor includes determining atleast one of an application age rating and a content age rating.
 8. Anapparatus for determining a transmit antenna gain, the apparatuscomprising: a controller; a main receive antenna operatively coupled tothe controller, the main receive antenna being associated with a firstreceive signal strength; a diversity receive antenna operatively coupledto the controller, the diversity receive antenna being associated with asecond receive signal strength; and a transmit antenna operativelycoupled to the controller, wherein the controller is structured to:determine a difference between the first receive signal strength and thesecond receive signal strength; determine a correction factor based onthe difference; determining a spatial mode of the apparatus at leastbased on the difference; and determine the transmit antenna gain basedon the correction factor and the spatial mode.
 9. The apparatus of claim8, wherein the diversity receive antenna is physically located betweenthe main receive antenna and the transmit antenna.
 10. The apparatus ofclaim 8, wherein the controller is structured to determine thedifference between the first receive signal strength and the secondreceive signal strength in real time.
 11. The apparatus of claim 8,wherein the controller is structured to determine the correction factor,at least in part, by determining if the difference between the firstreceive signal strength and the second receive signal strength exceeds apredetermined threshold.
 12. The apparatus of claim 11, wherein thepredetermined threshold is indicative of an adjusted gain differencebetween the main receive antenna and the diversity receive antenna. 13.The apparatus of claim 8, wherein the controller is structured todetermine the correction factor, at least in part, by determining anindication of path loss.
 14. The apparatus of claim 8, wherein thecontroller is structured to determine the correction factor, at least inpart, by determining at least one of an application age rating and acontent age rating.
 15. The method of claim 1, wherein determining thespatial mode is further based on data received from at least one sensorof the device.
 16. The apparatus of claim 8, further comprising: atleast one sensor coupled to the controller, the at least one sensorconfigured to send data to the controller, wherein the controllerdetermines the spatial mode of the apparatus based on the data receivedfrom the at least one sensor.
 17. The apparatus of claim 16, wherein theat least one sensor comprises at least one of a proximity sensor, anaccelerometer, and a direction/orientation sensor.